use std::io::File;
use std::io::fs::PathExtensions;
+use std::path;
use tar::Archive;
use flate2::{GzBuilder, BestCompression};
try!(shell.verbose(|shell| {
shell.status("Archiving", relative.as_slice())
}));
- let path = format!("{}-{}/{}", pkg.get_name(),
- pkg.get_version(), relative);
+ let path = format!("{}-{}{}{}", pkg.get_name(),
+ pkg.get_version(), path::SEP, relative);
try!(ar.append(path.as_slice(), &mut file).chain_error(|| {
internal(format!("could not archive source file `{}`", relative))
}));
let ar = Archive::new(MemReader::new(contents));
for f in ar.files().assert() {
let f = f.assert();
- match f.filename().unwrap() {
- "foo-0.0.1/Cargo.toml" |
- "foo-0.0.1/src/main.rs" => {}
- s => fail!("unexpected file: {}", s),
- }
+ let fname = f.filename_bytes();
+ assert!(fname == Path::new("foo-0.0.1/Cargo.toml").as_vec() ||
+ fname == Path::new("foo-0.0.1/src/main.rs").as_vec(),
+ "unexpected filename: {}", f.filename())
}
})
let ar = Archive::new(inner);
for file in ar.files().unwrap() {
let file = file.unwrap();
- assert!(file.filename() == Some("foo-0.0.1/Cargo.toml") ||
- file.filename() == Some("foo-0.0.1/src/main.rs"),
- "bad filename: {}", file.filename());
+ let fname = file.filename_bytes();
+ assert!(fname == Path::new("foo-0.0.1/Cargo.toml").as_vec() ||
+ fname == Path::new("foo-0.0.1/src/main.rs").as_vec(),
+ "unexpected filename: {}", file.filename())
}
})